package com.example.teaching_server.repository;

import com.example.teaching_server.entity.EducationTheme;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 教育主题数据访问层
 */
@Repository
public interface EducationThemeRepository extends JpaRepository<EducationTheme, Long> {

    /**
     * 查询所有主主题（没有父主题的，按排序号排序）
     */
    List<EducationTheme> findByParentIsNullOrderBySortOrderAsc();

    /**
     * 查询指定主题的所有副主题（按排序号排序）- Spring Data JPA 方法
     */
    List<EducationTheme> findByParentIdOrderBySortOrderAsc(Long parentId);

    /**
     * 查询指定主题的所有副主题（按排序号排序）- @Query 注解版本
     */
    @Query("SELECT t FROM EducationTheme t WHERE t.parent.id = :parentId ORDER BY t.sortOrder ASC")
    List<EducationTheme> findSubThemesByParentId(@Param("parentId") Long parentId);
}
